package com.yuantu.judiciary.service;

import com.yuantu.judiciary.model.enums.UserRelationType;
import com.yuantu.judiciary.model.form.*;
import com.yuantu.judiciary.model.vo.*;
import org.springframework.data.domain.Pageable;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * 企业尽调接口
 *
 * @author syw
 * @since 2023-07-13
 **/
public interface ICheckEnterpriseService {

    PageVO<EntListVO> getEnterpriseList(String enterpriseName, Pageable pageable);

    String uploadAuthorizedFile(Long userId, MultipartFile file, String enterpriseName);

    Long uploadAuthorizedFileByAli(Long userId, MultipartFile file, String enterpriseName);

    Long addAuthorizedRecord(Long userId, AddEntAuthRecordForm form);

    CheckEnterpriseBriefVO getBrief(Long userId, GetQueryInfoForm form);

    CheckEnterpriseOverviewVO getOverview(Long userId, GetQueryInfoForm form);

    CheckEnterpriseJudicialVO getDetailByJudicialInfo(Long userId, GetQueryInfoForm form);

    CheckEnterpriseJudicialVO getDetailByJudicialInfoNum(Long userId, GetQueryInfoForm form);

    PageVO<Object> getDetailByJudicialInfoPage(Long userId, QueryCasePageForm form, Pageable pageable);

    CheckEnterpriseBusinessRiskVO getDetailByBusinessRisk(Long userId, GetQueryInfoForm form);

    CheckEnterpriseBusinessInfoVO getDetailByBusinessInfo(Long userId, GetQueryInfoForm form);

    CheckEnterpriseYearReportVO getDetailByReport(Long userId, GetReportInfoForm form);

    List<UserRelationVO> getRelationAtlas(Long userId, UserRelationType type);

    List<UserRelationVO> getAllRelationAtlas(Long userId);

    CheckEnterpriseReportVO getReport(Long userId, GetQueryInfoForm form);

    PortraitDebtVO getPortraitByDebt(Long userId, GetPortraitInfoForm form);

    PortraitTrendVO getPortraitByTrend(Long userId, GetPortraitTrendForm form);

    PortraitAnalyzeVO getPortraitByAnalyze(Long userId, GetPortraitTrendForm form);

    PortraitAmountVO getPortraitByAmount(Long userId, GetPortraitAmountForm form);

    List<PortraitRelationVO> getPortraitByRelation(Long userId, GetPortraitInfoForm form);

    PortraitAreaVO getPortraitByArea(Long userId, GetPortraitInfoForm form);

    PageVO<SanctionVO> getSanctionList(String enterpriseName, Pageable pageable);

    SanctionInfoVO getSanctionById(GetSanctionInfoForm form);

    Long entAuthQueryRecord(Long userId, String name, String codeInfo);
}
